[DevelopersIO Korea] RDS Aurora에 대해 알아보자!
안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 2021-10-27에 열린 DevelopersIO Korea에서 발표한 [RDS Aurora에 대해 알아보자!]의 정리 내용을 정리해 보았습니다.
RDS Aurora의 구축하는 방법이 필요하시다면 아래의 링크를 클릭하여 들어가주세요.
RDS Aurora 구축편
그럼 시작하겠습니다.
RDS Aurora란?
고성능 데이터베이스 + 오픈 소스 데이터베이스의 간편성 과 비용 효율성 + MySQL / PostgreSQL 호환 + 고가용성이 결합된 MySql, PostgreSql기반으로 설계된 AWS 클라우드를 위한 완전 관리 형의 관계형 데이터베이스 입니다.
성능
RDS Aurora는 표준 MySql보다 5배 표준 PostgreSql보다 3배 많은 처리량을 제공 하고있습니다.
구성
사진첨부:「20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatibility」
RDS Aurora는 인스턴스와 스토리지가 분리되어 있습니다. 1개의 가용영역에 2개의 스토리지가 생성되고 총 3개의 가용역에 6개의 스토리지가 생성됩니다.
이로 인해 한쪽의 가용영역에 있는 스토리지가 사용할 수 없게 된다면 다른 가용영역에 있는 스토리지의 데이터를 참조하기 때문에 끊킴없이 사용할 수 있으며
스토리지에 있는 데이터는 S3에 자동으로 백업이 됩니다.
스토리지
사진첨부:「Introducing the Aurora Storage Engine」
RDS 에서는 용량을 미리 확보를 해나야 하는 반면 RDS Aurora에서는 스토리지를 자동으로 10GB씩 최대 128TB까지 늘려줍니다. 위 그림은 10GB분의 데이터가 3AZ에 걸쳐 6개 복사되고, 오른쪽 절반에서는 또 다른 10GB 데이터가 3AZ에 걸쳐 6개 복사되어 있는 총 20GB의 데이터 예입니다.
글로벌 데이터 베이스
사진첨부:「20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL」
글로벌 데이터베이스 서비스는 RDS Aurora 데이터베이스를 여러 AWS 리전으로 확장해 줍니다. 데이터베이스 성능에 어떠한 영향도 주지 않고 데이터를 복제하고, 각 리전에서 낮은 지연 시간으로 빠른 로컬 읽기를 지원하며, 리전 규모의 가동 중단 발생 시 재해 복구를 제공합니다. 1초 미만의 일반적인 지연 시간으로 스토리지 기반 복제를 사용합니다. 리전의 성능 저하 또는 가동 중단은 드문 일이지만, 보조 리전 중 하나가 1분 이내에 읽기 및 쓰기 기능으로 승격될 수 있습니다.
멀티 마스터 클라스터
사진첨부:「Amazon Aurora マルチマスタークラスターが東京リージョンに対応しました」
멀티 마스터 클러스터에 있는 모든 DB 인스턴스는 쓰기 작업을 수행할 수 있습니다. 단일 마스터 클러스터 처럼 읽기/쓰기 기본 인스턴스 및 다중 읽기 전용 복제본 개념은 적용되지 않습니다. 멀티 마스터 클러스터의 라이터 DB 인스턴스가 사용 불가 상태가 될 때 어떤 장애 조치 없이 또 다른 라이터 DB 인스턴스가 실패한 인스턴스의 작업을 인계하기 위해 즉시 사용 가능한 상태가 됩니다. 이것을 고가용성 보다 더 높은 지속적인 가용성이라고 합니다.
하지만 멀티 마스터 클라스터를 사용하게 될 경우 일부 제약이 발생 할 수 있습니다. 자세한 내용은 이곳 에서 확인 해주세요.
Backtrack
사진첨부:「20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL」
RDS Aurora에서는 데이터베이스를 어느 시점으로든지 되돌릴 수 있는 Backtrack을 제공해 주고 있습니다. 예를 들어 T1시점에서 T2시점으로 넘어 갈때 제가 실수로 테이블 한개를 삭제 했다고 가정했을 때 복구 하기 위해 T2시점에서 T1시점으로 손실없이 바로 되돌릴 수 있습니다.
하지만 Backtrack은 MySql에서만 지원을 해주고있기 때문에 이부분은 꼭 참고 하시고 사용하셔야합니다.
클러스터 캐쉬 관리
사진첨부:「Amazon Aurora 100% 활용하기」
RDS Aurora에서는 클러스터 캐시 관리 기능을 통한 빠른 복구가 가능합니다. 기본 인스턴스가 보유한 캐시를 특정 복제본과 공유할 수 있는 기능입니다. 충돌시 장애 조치가 발생하고 복제본이 기본 인스턴스로 승격되면 이전에 기본이었던 인스턴스의 캐시를 그대로 사용하여 즉시 원래 수준의 성능으로 복구할 수 있습니다.
병렬쿼리
사진첨부:「Deep Dive on Amazon Aurora」
위의 그림은 Database Node라고 쓰여진 위가 인스턴스 계층, 아래가 스토리지 계층입니다. RDS Aurora에는 스토리지에도 CPU가 있기 때문에 쿼리를 처리 할 수 있습니다 이로 인해 대량의 쿼리들을 병렬로 처리해 쾌속으로 처리 할 수 있습니다.
Aurora Serverless
Aurora Serverless는 Amazon Aurora의 온디맨드 Auto Scaling 구성입니다. 인스턴스층이 수요에 맞게 자동으로 조율 하고 미 사용시 종료후 요금을 발생시키지않습니다.(스토리지 비용은 발생). 특정시간대에만 사용하거나 테스트환경의 데이터베이스의 수요를 전혀 예측할 수 없을경우 Aurora Serverless기능을 사용하면 좋을것 같습니다.
요금에 대해서
- 인스턴스 요금
DB인스턴스를 시작하는 단위로 비용이 발생합니다. (1시간 미만은 10분을 최소 비용으로 초단위로 발생)예약 인스턴스 요금을 이용하면 1년 기준 45% 3년 기준 66% 절감 가능합니다.
-
스토리지 요금
저장된 용량(GB)와 IO요청(100만개)에 대해 비용이 발생 합니다. -
백업
백업 스토리지 용량(GB)에 대해 발생합니다. 하지만, Aurora DB스토리지의 100% 초과하지 않거나 보관 기간이 1일을 넘지 않으면 추가비용 없습니다. -
데이터 전송
인바운드, 아웃바운드 전송되는 데이터에 따라 비용 발생합니다 하지만, 동일 AZ의 Aurora와 EC2 인스턴스 간의 데이터 전송, DB클라스터가 복제 목적 AZ 사이의 데이터 전송은 비용이 발생하지않습니다.
장점
-
높은 성능
-
높은 가용성
-
뛰어난 보안
-
뛰어난 확장성
-
MySQL, PostgreSQL과 호환이 된다
-
자동으로 관리 해주는 완전 관리형
단점
-
RDS Mysql보다 약20% 높은 비용
-
MySQL, PostgreSQL의 특정 버전만 호환
-
패치로인한 Downtime 발생
질문에 대하여
Q: rds에 개인정보데이터 저장 시 암호화 저장되는지요 설정방법이 궁금합니다.
A: 먼저 암호화 저장에는 여러 방법이 있습니다.
- 어플리케이션 쪽에서 데이터를 암호화 하고 저장하는 방법
- 사진과 같은 파일은 S3에 저장하고 암호화를 설정하는 방법
Amazon S3 기본 버킷 암호화 활성화 - KMS 암호화 기능을 사용하여 RDS 데이터 보호하는 방법
AWS KMS 암호화 기능을 사용하여 Amazon RDS 데이터 보호
위의 방법중 질문자님 께서 필요하신 방법을 사용하시면 될 것 같습니다.
Q: rds에 개인정보db 접속로그를 3년간 보관설정 방법이 궁금합니다.
A: AWS CloudWatch Logs를 사용하여 보관기간을 설정하실 수 있습니다.
Q: 계정권한부여 방법이 궁금합니다.
A: 먼저 구체적으로 어떤 계정권한부여인지 한번 더 확인 못한점 죄송합니다. 그래서 RDS의 IAM권한과 로그의 IAM권한 두가지 방법에 대해 공유 하겠습니다.
- IAM 인증을 통한 RDS 연결을 시도했습니다.
(위의 블로그는 일본어 블로그 임으로 크롬으로 실행 후 우클릭 하여 한국어 번역으로 봐주시면 감사하겠습니다.) - Amazon RDS에 서비스 연결 역할 사용
- Amazon RDS가 사용하는 IAM 역할을 완전히 그림으로 그려서 구성했습니다.
(위의 블로그는 일본어 블로그 임으로 크롬으로 실행 후 우클릭 하여 한국어 번역으로 봐주시면 감사하겠습니다.)
마무리
처음으로 DevelopersIO Korea에 참여하여 초보자들 대상으로 발표를 진행하게 되어 긴장도 많이 되고 걱정도 많이 되었지만 저도 아직 배울것이 많기에 제가 듣는다는 생각으로 준비 해보았습니다. 아직 부족하고 갖추어야 할 능력이 많다 라고 느껴 정말 좋은 경험이 되었습니다. 이번 RDS Aurora발표 내용을 통해 평소에 관심이 있으셨거나 알고 싶으셨던 분들에게 조금이라도 도움이 되었으면 좋겠습니다. 그리고 RDS Aurora는 AWS 서비스의 장점을 극대화 하고 고성능, 고가용성 데이터베이스를 사용 하고 싶다! 데이터베이스를 자동으로 관리 하고 싶다! 하시는 분들이 사용하시면 정말 만족스러운 서비스 라고 생각합니다.
참고한 내용
AuroraかRDSどちらを選ぶべきか比較する話をDevelopers.IO 2019 in OSAKAでしました